The present invention relates to layer 3 routing in conjunction with operation over self-healing networks. A self-healing network as defined herein is a lower layer routing protocol which can hide a broken link in the network from the upper layers, routing the communication without interruption.
When used in conjunction with conventional networks, a layer 3 routing entity tends to determine the least costly path between any two layer 3 routing entities in the network according to a routing protocol, such as RIP, OSPF (RFC 2328). Layer 3 routing entities are connected to one another by a link. There are many examples of links, but a frame relay DLCI, ATM VCC, Ethernet LAN are but a few. Layer 3 routing entities maintain knowledge of their immediate neighbors to whom they are linked. Point-topoint links (such as a frame relay DLCI) will always set up routing adjacencies. While broadcast links (such as Ethernet) may or may not set up routing adjacencies, they will always set up neighbor adjacencies. (Neighbors are a subset of routing adjacencies.) When a point-to-point link fails, the routing entities readjust their adjacency lists. Routing adjacencies to entities that are not neighbors may need to be recomputed to get around the failed link. When the link is reestablished, the routing entities must perform a complex sequence of handshaking to set up routing adjacency again. This process is compute and bandwidth intensive.
Self-healing networks such as SONET rings hide most of the link failures from the routing entities. This is performed, in the case of SONET rings, by sending the traffic between the two routing entities around the ring in the opposite direction. Activity between the routing entities is thereby maintained and a broken link is not seen. In particular, a link flap in which a link is repeatedly opened and closed is hidden from the upper layer routing logic. The costly recomputation and resynchronization of the layer 3 routing entities is thereby avoided. However, this may lead to inefficient transport of data because the broken link is hidden from the layer 3 router. A break in the SONET ring between two routing entities that are relatively close will result in data traffic between the two entities being sent around the long side of the ring. If those two entities were joined by a second route, it may have been possible to redirect traffic through the second route instead of taking the long path around the first SONET ring. However, the layer 3 router is unaware of the break in the SONET ring and takes the long path around the first ring instead of the shorter path on the second route.
In accordance with embodiments of the present invention, reachability costs are determined by a self-healing lower layer network and communicated to upper layer routing logic. Maintenance changes in the self-healing network are monitored. Thus, a break in a link is recognized. When a maintenance change occurs, reachability costs are revised. The reachability costs provide a relative measure of the burden in getting from one point to another on the self-healing network. The revised cost data is communicated to the upper layer logic. In an embodiment of the invention, reachability costs can be a measure of the number of routers which are traversed from one point to another through the active portions of the ring. Program code for performing the method of an embodiment of the invention may be incorporated into add drop multiplexor functionality for use on a self-healing network.
A self-healing lower layer network of an embodiment of the invention connects a plurality of routers in a ring configuration. Reachability costs are determined by messages sent over the self-healing lower layer network that contain an originator identifier and a node counter data field. The node counter date field is changed by one increment at each router through which the message passes. By reading the originator identifier and node counter data field at each router, each router learns the number of routers between the originator and itself. This number is used to determine the reachability cost. The cost is recorded. A least cost reachability cost for a route is communicated by lower layer logic to upper layer logic. A maintenance change due to a link failure may result in revising the least cost reachability cost by replacing a cost for routing in one direction about the ring with a cost for running in an opposite direction about the ring with a cost for running in an opposite direction about the ring.
In accordance with the method of embodiments of the invention, lower overall network utilization can be achieved. Other objects and advantages of the invention will become apparent during the following description of the presently preferred embodiments of the invention taken in conjunction with the drawings.